Denial of Service (DoS) attacks are attempts to deny service of a target computer to legitimate users attempting to access the target computer via a network. In one form, a DoS attack is such that the target computer is forced to expend resources on activities related to the attack. As a result, during the attack, the target computer does not have resources available to provide service to the legitimate users.
One type of DoS attack of this form is a SYN flood attack. During a SYN flood attack, illegitimate TCP/SYN packets (i.e., ones for which there is no intention to initiate a TCP connection) are sent to the target computer. The target computer, handling the illegitimate TCP/SYN packets as legitimate, needlessly consumes resources in responding to the illegitimate TCP/SYN packets with a TCP/SYN−ACK (acknowledgement) packet. Perhaps even worse, the target computer allocates and ties up resources while waiting for details of the “connection”—such details never come. Furthermore, using viruses or other malware, multiple computers on a network such as the internet may be compromised to cause all the computers to simultaneously attack the target computer. Such attacks are known as distributed attacks.
There have been attempts to respond to DoS attacks. For example, SYN cookies may be utilized such that resources of the target computer are not allocated until the sender of the TCP/SYN request, responds with an TCP/ACK to the TCP/SYN+ACK, or even not until the first data carrying packet is received from the peer. The SYN cookies approach requires a modification to the TCP protocol and handling by the target computer.
In some systems, firewalls are employed to distinguish between good traffic and attack traffic. The firewalls confirm that the TCP connections are valid and then proxy packets of the confirmed connection on to the intended destination endpoint. Such firewalls can be effective against DoS attacks. However, resources are utilized during the data transfer phase to handle the overhead of proxying packets of the confirmed connections on to the intended destination.
Even legitimate TCP/SYN packets (i.e., TCP/SYN packets from legitimate peers legitimately intending to initiate a TCP connection), if numerous enough, can bog down a host computer such that, for example, the host computer cannot perform other functions such as communicating on already established connections.